ASP.NET Core এ ফাইল আপলোড এবং ডাউনলোড একটি সাধারণ প্রক্রিয়া, যা ওয়েব অ্যাপ্লিকেশনগুলির মাধ্যমে ব্যবহারকারীদের ফাইল আপলোড এবং ডাউনলোড করতে সহায়ক। ফাইল আপলোড এবং ডাউনলোড পরিচালনা করতে IFormFile ইন্টারফেস ব্যবহার করা হয়। এটি ব্যবহারকারীদের ফাইল নির্বাচন ও আপলোড করার জন্য একটি সহজ এবং নিরাপদ পদ্ধতি প্রদান করে।
ASP.NET Core-এ ফাইল আপলোড করার জন্য আপনাকে ক্লায়েন্ট সাইড (HTML) এবং সার্ভার সাইড (C#) কোড লিখতে হবে। নিচে ফাইল আপলোড করার প্রক্রিয়া দেখানো হলো।
প্রথমে, একটি HTML ফর্ম তৈরি করুন যেখানে ব্যবহারকারী ফাইল আপলোড করতে পারবেন।
<form enctype="multipart/form-data" method="post" action="/FileUpload/UploadFile">
<input type="file" name="uploadedFile" />
<button type="submit">Upload File</button>
</form>
এখানে enctype="multipart/form-data"
ব্যবহার করা হচ্ছে, যা ফাইল ডেটা সহ অন্যান্য ডেটা সার্ভারে পাঠাতে সহায়তা করে।
ASP.NET Core-এ ফাইল আপলোড করার জন্য আপনাকে একটি Controller তৈরি করতে হবে, যেখানে ফাইল গ্রহণ এবং সেভ করার কোড থাকবে।
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Threading.Tasks;
public class FileUploadController : Controller
{
// GET: FileUpload
public IActionResult Index()
{
return View();
}
// POST: FileUpload/UploadFile
[HttpPost]
public async Task<IActionResult> UploadFile(IFormFile uploadedFile)
{
if (uploadedFile != null && uploadedFile.Length > 0)
{
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", uploadedFile.FileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await uploadedFile.CopyToAsync(stream);
}
return RedirectToAction("Index");
}
return View();
}
}
এখানে, IFormFile
ব্যবহার করে ফাইলটি গ্রহণ করা হয়েছে এবং এটি wwwroot/uploads
ফোল্ডারে সেভ করা হয়েছে।
ফাইল আপলোড করার জন্য আপনাকে একটি ফোল্ডার তৈরি করতে হবে যেখানে ফাইলগুলো সেভ করা হবে। উদাহরণস্বরূপ, wwwroot/uploads
ফোল্ডার।
ফাইল ডাউনলোড করার জন্য সার্ভারের সঠিক পাথ থেকে ফাইলটি পাঠানো হয়। নিচে ফাইল ডাউনলোড করার উদাহরণ দেখানো হলো।
public class FileDownloadController : Controller
{
// GET: FileDownload/DownloadFile
public IActionResult DownloadFile(string fileName)
{
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", fileName);
if (System.IO.File.Exists(filePath))
{
var fileBytes = System.IO.File.ReadAllBytes(filePath);
return File(fileBytes, "application/octet-stream", fileName);
}
return NotFound();
}
}
এখানে:
File.ReadAllBytes
: ফাইলের সকল বাইট পড়ার জন্য ব্যবহৃত হয়।File
: ডাউনলোডের জন্য ফাইল রিটার্ন করে। এটি ক্লায়েন্ট সাইডে ফাইল ডাউনলোড শুরু করবে।<a href="/FileDownload/DownloadFile?fileName=example.jpg">Download File</a>
এখানে, fileName
প্যারামিটারটি সার্ভারে পাঠানো হচ্ছে, যাতে নির্দিষ্ট ফাইলটি ডাউনলোড করা যায়।
ফাইল আপলোড এবং ডাউনলোড করার সময় কিছু নিরাপত্তা বিষয় নিশ্চিত করা জরুরি:
var allowedExtensions = new[] { ".jpg", ".png", ".txt" };
var fileExtension = Path.GetExtension(uploadedFile.FileName);
if (!allowedExtensions.Contains(fileExtension.ToLower()))
{
return BadRequest("Invalid file type.");
}
ASP.NET Core-এ ফাইল আপলোড এবং ডাউনলোড করার প্রক্রিয়া খুবই সহজ এবং নমনীয়। আপনি ফাইলটি সার্ভারে গ্রহণ এবং সেভ করতে পারবেন, এবং পরে সেই ফাইলটি ব্যবহারকারীর জন্য ডাউনলোডও করতে পারবেন। তবে, নিরাপত্তার দিক থেকেও সতর্ক থাকা প্রয়োজন, বিশেষ করে ফাইলের ধরন এবং আকারের জন্য যাচাই নিশ্চিত করতে।
common.read_more